1. Field of the Invention
This invention relates to virtualization in a computer system. More particularly, the invention relates to a system and method for controlling interaction between virtualized environments and other environments in computer systems.
2. Description of the Related Art
Virtualization may be used in computer systems to fully or partially decouple software, such as an operating system (OS), from a system's hardware and provide an end-user with an illusion of multiple OSes running on a same machine each having its own resources. An end user may be presented with one or more virtualized environments in which applications may be operated in addition to the environment provided by the operating system (the system environment). A virtualized environment may be thought of as a “sandbox” where applications can be placed that will contain and constrain an application's behavior. Generally speaking, from an application's point of view, there may be no detectable differences between a physical operating system environment and a virtualized environment. However, an application running in a virtualized environment may be isolated from other applications running in other virtualized environments, or from the physical operating system environment. In addition, an application running in a virtualized environment may be prevented from affecting the configuration of the physical operating system environment.
Complete isolation of applications, processes, and/or resources in virtualized environments as described above is not always desirable. For example, documents created in a virtualized environment by a virtualized application may be lost when a virtualized application is destroyed. Also, it may be desirable for a process in one environment to have access to a process or data that is in another environment. Accordingly, systems and methods of controlling interaction between virtualized environments and other environments are desired.